Configuration For Debian With KDE
As a personal preference, Debian is used in combination with KDE for a stable, reliable, and configurable experience. Debian Testing is specifically used for packages which are updated frequently while remaining secure without the risk of accidentally breaking the system. The notable applications (and their relevant add-ons and extensions) installed on the system include Firefox, Inkscape, GIMP, Blender, VLC, VSCodium, Foliate, and several other useful packages. The other distributions which have been considered before settling on Debian include Ubuntu, KDE Neon, Solus, Ubuntu Budgie, Pop!_OS, and Manjaro (still need to try distributions using Fedora Linux and OpenSUSE), while the other desktop environments which have been considered before settling on KDE include GNOME, Budgie, and XFCE.
Debian And KDE
Debian is distribution of free and open-source software developed by the Debian Project. The Debian Project was established by Ian Murdock in 1993 with the first version of Debian being released in 1993-09 and first stable version of Debian being released in 1996-06. The project is guided by the Debian Social Contract, Debian Constitution, and Debian Free Software Guidelines. The primary branch is Debian Stable is a fixed release, although Debian Testing and Debian Unstable can be configured as rolling releases (distribution code names are based on the names of characters from Toy Story). Debian can be installed from an ISO written to a USB, which is then used as the installer for the system. It is recommended to use the netinst
option for Debian Stable and then apply further modifications.
sudo fdisk -l sudo dd bs=4M if=/path/to/debian.iso of=/dev/sdx status=progress oflag=sync
The Plasma Desktop is a highly customizable desktop environment developed by the KDE Project, which was founded by Matthias Ettrich in 1996-10 and is a collection of developers creating free and open source software based on the Qt widget toolkit. There is a focus on being simple by default and powerful when needed. The initial version was released in 1998-07 and has expanded to include various frameworks and cross-platform applications. The KDE Conduct Code is also inspiration and can be summarized as "be considerate, be respectful, be collaborative, be pragmatic, support others in the community, and get support from others in the community". Finally, the official mascots are Konqi and Katie.
Image strip of Konqi: https://community.kde.org/KonqiTesting And Unstable
The repository from which packages are accessed can be changed by modifying the source at /etc/apt/sources.list. Debian Testing is the current development state of the next stable repository distribution. When the current testing repository becomes mature and is released, testing becomes the latest stable repository release. From there, a new testing repository will be created with the next planned code name and packages will continue to move from the unstable repository into the new testing repository. The packages in the testing repository have been verified to satisfy certain criteria, including that the package has been in the unstable repository for several days, package has been built for each supported architecture, installing the package will not make the distribution more uninstallable, and new release critical bugs are not introduced. It should be noted that the release class will be tracked if the class name of the repository is used for the source, otherwise the point release will be tracked if the code name of the repository is used for the source.
Debian Unstable (also known as Sid) is a rolling developmental version of Debian containing the latest packages. These packages are available after they have been uploaded by their maintainer and cleared for release by the file transfer protocol master without further criteria for distribution. The unstable repository is currently updated every 6 hours. The source of this repository is the same whether the class name or code name is used (since there are no point releases).
To emphasize, caution should be applied when changing the repository source, as it is possible to break the system to a degree which cannot be fixed due to conflicting packages, missing libraries, unfulfillable dependencies, and other unpredictable consequences - systems in this state are known as a FrankenDebian. Moreover, the security updates for unstable repository are not managed by the security team and these updates may be released with delays (testing repository shares security efforts from the stable repository). An alternative to the testing repository and unstable repository is the backports repository which can be used with Debian Stable. To mention, the class name of the stable repository should not be used as the source, as this may lead to unexpected results when the next release is available - upgrading to a new release should be a deliberate and careful action. It should also be noted that there is an experimental repository upstream of the unstable repository, but this repository is fairly volatile with packages which are still under development or testing and should not be used (unless actually involved in that development and testing).
With regard to other repositories which are available (besides stable
, testing
, and unstable
), stable-updates
is used for packages which many be useful to install before the next point release is made (packages guaranteed to be included in the next point release) stable-security
is used for packages which have been approved by the security team (interestingly, there is testing-security
, but it is empty and intended to be used if tracking a point release when the testing repository becomes the stable repository). Each repository then contains components with packages, where main
consists of packages which are compliant with guidelines and do not rely on software outside this area to operate (these are the only packages considered part of the distribution); contrib
consists of packages which are compliant with guidelines but have dependencies which are not in main
(possibly packaged in non-free
); non-free
consists of packages which are not compliant with guidelines; and non-free-firmware
consists of packages which are not compliant with guidelines but feature firmware binaries which may assist with installation and live images.
deb https://deb.debian.org/debian/ code-name main contrib non-free non-free-firmware deb-src https://deb.debian.org/debian/ code-name main contrib non-free non-free-firmware deb https://security.debian.org/debian-security code-name-security main non-free non-free-firmware deb-src https://security.debian.org/debian-security code-name-security main non-free non-free-firmware deb https://deb.debian.org/debian/ code-name-updates main non-free-firmware deb-src https://deb.debian.org/debian/ code-name-updates main non-free-firmware
deb https://deb.debian.org/debian/ testing main contrib non-free non-free-firmware deb-src https://deb.debian.org/debian/ testing main contrib non-free non-free-firmware deb https://security.debian.org/debian-security testing-security main non-free non-free-firmware deb-src https://security.debian.org/debian-security testing-security main non-free non-free-firmware
deb https://deb.debian.org/debian/ code-name main contrib non-free non-free-firmware deb-src https://deb.debian.org/debian/ code-name main contrib non-free non-free-firmware deb https://security.debian.org/debian-security code-name-security main non-free non-free-firmware deb-src https://security.debian.org/debian-security code-name-security main non-free non-free-firmware
deb https://deb.debian.org/debian/ unstable main contrib non-free non-free-firmware deb-src https://deb.debian.org/debian/ unstable main contrib non-free non-free-firmware
deb https://deb.debian.org/debian/ sid main contrib non-free non-free-firmware deb-src https://deb.debian.org/debian/ sid main contrib non-free non-free-firmware
Firefox Web Browser
Mozilla Firefox is a free and open source web browser which uses the Gecko layout engine to render web pages based on web standards for HTML, CSS, and JavaScript. There is functionality and support for tabbed browsing, spell checking, integrated search, incremental search, bookmarking, download management, private browsing, location-aware browsing, and extension through add-ons created by third-party developers. There are additional features for web development with built-in tools for monitoring, debugging, and editing. Furthermore, it has capabilities to read and view various file formats, including PDF, PNG, JPG, SVG, MP4, and MP3. The add-ons and extensions mentioned below are interesting additions for further functionality. With extra effort, it is possible to customize the layout by modifying the style rules.
- uBlock Origin: Wide-spectrum content blocker with CPU and memory efficiency. By default, there are blockers for advertisements, trackers, cryptocurrency miners, pop-ups, and annoyances. Additional filter lists for blockers are available in the settings and can be easily activated and customized - these should be included to filter things which are not included by default, such as annoyances and social media trackers. (For additional resources and privacy, it may be useful to also install AdGuard AdBlocker, although this is probably redundant as filter lists are often shared).
- Unpaywall: Automatically check whether a scholarly article is available in an alternate database of open-access articles - currently, over 16 million articles are available. It should be emphasized that this is completely legal, as the articles were legally published on different platforms (unlike other illegal means, such as Sci-Hub, Library Genesis, or Z-Library).
- Bypass Paywalls Clean: Automatically prevent paywalls on many news and media sites which typically have limited viewing and prompt for subscription requirements. Alternatively, it is possible to copy the URL of the webpage and try to use Archive Today or 12ft Ladder which utilize web crawlers to return a cached version of a webpage.
- Firefox Relay: ... .
- SingleFileZ: Save a complete web page (or selected content) in its current state into a HTML file which containing all of the components of the page. These components are embeded into the HTML with compatibility for images, styling, frames, scripts, fonts, and other elements. There is also support for adding annotations and modifying the way in which pages are saved. An alternative is SingleFileZ which creates a self-extracting HTML file which is also a valid ZIP file.
- SponsorBlock: Crowd-sourced blocker and open API designed for automatically skipping segments in YouTube videos. The focus is directed at skipping sponsor segments, but there are additional categories for skipping introductions, closings, reminders to subscribe, non-music segments, and other annoyances. The timestamps of each segment are stored in a user-submitted database, which is freely available to be accessed by the public.
- Distraction Free YouTube: ... . Consider replacing with https://addons.mozilla.org/en-US/firefox/addon/youtube-addon/.
- Video Speed Controller: ... .
- ...Auto HD/4k/8k For YouTube...: ... .
Since Firefox 57 (also known as Firefox Quantum), it is possible to edit the CSS interface layout of the toolbars in the window. This includes customising the tab bar, navigation bar, bookmarks bar, side panel, drop-down menus, and various button positions, where it is possible to changes sizes, locations, colours, and a variety of other aspects. The custom CSS is placed within userChrome.css
(navigate to about:support, find the profile directory, create a sub-folder /chrome/
, and create the file userChrome.css
). For more information, there is a growing community to offer support and examples.
Inkscape Vector Graphics Editor
Inkscape is a free and open source vector graphics editor used to create or edit vector graphics such as illustrations, diagrams, line arts, charts, logos, icons, and complex paintings. Essentially, nodes are used to create paths and objects where it is possible to use fills with solid colours, patterns, and radial or linear gradients, and strokes can be applied along the borders, while transformations can also be implemented through transformations such as moving, rotating, scaling and skewing. Inkscape is focussed on using SVG files, but there is also support for other file formats including AI, CDR, EPS, PDF, and PS. For customization, the preferences are located at /home/user/.config/inkscape/preferences.xml, the tempates are located at /home/user/.config/inkscape/templates/default.svg as SVG files, and the colour palettes are located at /home/user/.config/inkscape/palettes/Custom.gpl.
This package is available through Apt (there is also an official snap version and unofficial flatpak version available, but these are not personally recommended in the current development states) or the source code can be accessed through the open source repository and additional resources are available from the project website.GNU Image Manipulation Program
The GNU Image Manipulation Program or GIMP is a raster graphics editor under the GNU Project and used for image manipulation, composition, retouching, authoring, free-form drawing, converting between file formats, and programming scripting for automation. Essentially, the pixels in a raster image are manipulated by modifying their associated values in the defined colour space. For customization, the configuration, preferences, interface layout, and various settings for different tools can be easily modified. There are also third-party packages available for extended functionality.
Blender Modelling
...
VLC Media Player
VLC Media Player is a free and open source cross-platform multimedia player, framework, and streaming media server developed by the VideoLAN project. It has capabilities to play various file formats including 3GP, AVI, FLV, MIDI, MP4, OGG, and WAV for video and AAC, FLAC, MP3, and WMA for audio, as well as reading Blue-ray Discs, DVDs, VCDs, CDs, and various streaming protocols. For customization, the preferences and interface layout are located at /home/user/.config/vlc/.
Install VLC Media Player |
sudo apt install vlc |
Visual Studio Code
Visual Studio Code is a free text and source-code editor based on Electron and developed by Microsoft under an open source licence. There is functionality and support for debugging, embedded Git control, syntax highlighting, intelligent code completion, snippets, code refactoring, and extension through add-ons created by third-party developers. For customization, there are many preferences which can be edited along with the theme, keyboard shortcuts, and snippets. In a sense, it is possible to employ these customizations to use Visual Studio Code as an integrated development environment. The add-ons mentioned below are interesting additions for further functionality.
- Theme: Currently, the preferred interface themes and syntax highlighting are GitHub Plus Theme or Slack Theme with the preferred icons theme as Material Icon Theme. Alternatively, just use the defaults for simplicity.
- Activitus Bar: Move the icons of the activity bar to the status bar, which allows for the activity bar to be hidden to save horizontal space while maintaining functionality and accessibility. After installation, it is necessary to set the activity bar to hidden from within the settings. The appearance can be customized if necessary.
- LTEX: A basic language checker with offline spelling and grammar corrections for various markup languages using LanguageTool. Some additional features include issue highlighting with hover description, replacement suggestions through quick fixes, custom user dictionaries, and extensive documentation. For customization, the language is set to English UK, check frequency is set to be performed on save, and status bar item is set to be visible. Previously, Code Spell Checker was used, but it only has functionality for checking spelling.
- Tab-Indent Space-Align: Allows for better distinction between the use for tabs and spaces, such that there is a contrast between tabs for indentation and spaces for alignment. The functionality includes entering a newline with the indentation and any alignment from the previous line, pressing tab within the indentation will insert a tab otherwise it will insert spaces, block indenting and outdenting will only add or remove leading tabs, and there is support for multiple selections. There are no settings to configure.
Visual Studio Code also allows for the creation of custom keyboard shortcuts and snippets. These are useful ... .
Dolphin File Manager
...
Okular Document Viewer
...
Foliate eBook Reader
...
Other Useful Packages
Xournal++ Mission Center: Monitor the usage of the central processing unit, memory, disks, network, and graphics processing unit. https://missioncenter.io/ https://gitlab.com/mission-center-devs/mission-center https://flathub.org/apps/io.missioncenter.MissionCenter Spotube https://github.com/KRTirtho/spotube https://flathub.org/apps/com.github.KRTirtho.Spotube Parabolic https://github.com/NickvisionApps/Parabolic https://flathub.org/en-GB/apps/org.nickvision.tubeconverter Youtube DL GUI https://github.com/JaGoLi/ytdl-gui https://flathub.org/en-GB/apps/io.github.JaGoLi.ytdl_guiGNU Octave is a high-level and scientific programming language developed under the GNU Project and intended for numerical computations with extensive tools for solving linear and nonlinear problems (similar to MATLAB developed by MathWorks, while also offering compatibility with most MATLAB functionality). Essentially, it is written in C++ using the standard libraries and then utilizes an interpreter to execute the associated scripting language, where there is also an OpenGL-based graphics engine to create plots, graphs, and charts. There are many third-party packages available from Octave Forge on SourceForge, such as integration with audio, control, data smoothing, econometrics, and finite element method. There are also additional resources from the project wiki for documentation.
LibreOffice DisplayCAL Cura FreeCAD... additional resources and extensive support are available from the official forums and subreddit.
Nautilus or GNOME Files, Nemo, and Thunar are common file managers. At the present moment, Nautilus has the best search functionality through directly typing and it utilises a header bar with client side decorations. Nemo (originally from Cinnamon) has most of the same features with a menu bar while also allowing for the current path to be copied or edited, but it does not have a bulk rename function (although this can be added if Thunar is installed) and it is necessary to use a keyboard shortcut to search globally (otherwise it only searches locally in the current directory). Thunar (originally from Xfce) also has most of the same features with a menu bar while also allowing for the current path to be directly copied or edited, but it does not feature global search functionality (only searches locally in the current directory). There is no noticeable difference in speed between the programs. The default file manager is Nemo and it is currently preferred on the same level as Nautilus (but Nautilus offers more congruence with system file dialog in some applications, like Firefox, Evince, and Atril (other applications use a completely different file dialog, like Inkscape and GIMP)).
Each of these packages are available through Apt. The source code of Nautilus can be accessed through the open-source repository. The source code of Nemo can be accessed through the open-source repository with additional extensions. The source code of Thunar can be accessed through the open-source repository.
Evince is a document viewer capable of displaying file formats of PDF, PS, EPS, DJVU, DVI, XPS, and various comic book formats. It utilises a headerbar with client-side decorations for quick access without wasting space. There is functionality and support for searching text, copying to clipboard, hypertext navigation, bookmarks, and annotations through highlighting and inserting notes. With regards to the backends, Poppler is used for a PDF file, LibSpectre is used for a PS file, and DjVuLibre isused for a DJVU file. For customisation, the sidebar has been hidden, a continuous page view is used, and a fit width zoom is employed by default. It should also be noted that the primary-mouse-button selects text, middle-mouse-button drags the document, and secondary-mouse-button opens the context menu (where auto-scrolling can be selected). This package is available through Apt or the source code can be accessed through the open-source repository and additional resources are available from the project website.
Atril is a document viewer capable of displaying file formats of PDF, PS, EPS, DJVU, DVI, and XPS. It is actually a fork of Evince designed for the MATE desktop environment, and it maintains a simple look without client-side decorations. There is functionality and support for searching text, copying to clipboard, hypertext navigation, and bookmarks. With regards to the backends, Poppler is used for a PDF file, Libspectre is used for a PS file, and DjVuLibre isused for a DJVU file. For customisation, the toolbar and sidebar have been hidden, a continuous page view is used, and a fit width zoom is employed by default. It should also be noted that the primary-mouse-button selects text, middle-mouse-button drags the document, and secondary-mouse-button opens the context menu (where auto-scrolling can be selected). This package is available through Apt or the source code can be accessed through the open-source repository.
Zim Desktop Wiki is a graphical text editor used to maintain a collection of notes through the use of different pages based on a folder structure, where each page can contain simple formatting (headings, bold, italics, highlighting, and strikethrough), links, images, bullet lists, number list, and attachments. Fortunately, there is automatic auto-saving and all data is stored in plain text files with conventional wiki markup formatting. There are also various plugins providing additional functionality, such as a spell checking, task list manager, equation editor, and support for version control. If Zim is often used during each session, it can be set to autostart after logging-in with a system tray icon for easy access. This package is available through Apt or the source code can be accessed through the open-source repository and additional resources are available from the project website and wiki.
Redshift allows for the colour temperature and brightness of the monitor to be adjusted based on a schedule for day and night. (This does not provide native changes to the monitor hardware, but rather applies a virtual film over the desktop output). The settings are controlled through a configuration file located at /home/user/.config/redshift/redshift.conf (the old location at /home/user/.config/redshift.conf is deprecated, but it will still be searched as a fall back). It is recommended that the colour temperature can remain unchanged at 5500K to 6600K with normal brightness for day time, and the colour temperature should be reduced to between 3000K to 4000K with a reduced brightness of around 50% for night time - the personally customised version can be downloaded here. The location for transition between day and night can be set automatically with GeoClue services or manually with latitude and longitude coordinates. This package is available through Apt or the source code can be accessed through the open-source repository and additional resources are available from the project website.
This package is available through Apt or the source code can be accessed through the open source repository and additional resources are available from the project website.